package cn.tedu.csmall.stock.webapi.quartz;

import cn.tedu.csmall.commons.pojo.stock.model.Stock;
import cn.tedu.csmall.stock.webapi.quartz.config.RabbitMQConfig;
import cn.tedu.csmall.stock.webapi.utils.RedisBloomUtils;
import com.google.j2objc.annotations.AutoreleasePool;
import org.checkerframework.checker.units.qual.A;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;

import java.time.LocalDateTime;

public class QuartzJob implements Job {

    // 向RabbitMQ发送消息的对象
    // 也是通过配置之后,SpringBoot启动创建的
    @Autowired
    private RabbitTemplate rabbitTemplate;


    // 操作支持布隆过滤器redis的对象
    @Autowired
    private RedisBloomUtils redisBloomUtils;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        // 实现一个简单的任务做演示
        // 例如输出当前时间
        System.out.println("-------------------"+ LocalDateTime.now() +
                                                            "--------------------");
//        // 先定义要保存到布隆过滤器的元素数组
//        String[] colors={"red","origin","yellow","green","blue","pink","white"};
//        // 执行向布隆过滤器中保存上面数组元素的指令
//        final String COLOR_BLOOM="color_bloom";
//        redisBloomUtils.bfmadd(COLOR_BLOOM,colors);
//        // 下面开始检查一个指定的字符串是否在布隆过滤器中
//        String elm="zhanghl";
//        // 判断该元素是否在数组中
//        System.out.println(elm+"是否在定义的数组中:"+
//                redisBloomUtils.bfexists(COLOR_BLOOM,elm));


        /*
        // 实例化Stock对象
        Stock stock=new Stock();
        stock.setId(20);
        stock.setCommodityCode("PC100");
        stock.setReduceCount(10);
        // 利用RabbitTemplate发送消息
        // convertAndSend([交换机名称],[路由Key名称],[要发送的消息])
        rabbitTemplate.convertAndSend(RabbitMQConfig.STOCK_EX,
                RabbitMQConfig.STOCK_ROUT,stock);
        System.out.println("发送消息完成:"+stock);

         */

    }
}
